package paint;

import java.awt.Color;
import java.io.Serializable;
import java.util.ArrayList;

/**
 * La classe Segment sert à la création d'un segment
 * @author Romain Bustos
 * @author Matthieu Perrin
 * @version 1.0
 */
public abstract class Forme implements Serializable
{
    
    Color couleur = Color.WHITE;
    boolean select = false;
    
    abstract Forme createClone();
    
    /**
    *<b>Mutateur de la classe Forme</b><br> 
    * <p>
    * Est utilisé pour séléctionner un objet de la classe forme<br>
    * </p>
    * @param sel
    *       boolean 
    */
    void setSelect(boolean sel)
    {
        select = sel;
    }
    
    /**
    *<b>Observateur de la classe Forme</b><br> 
    * <p>
    * Est utilisé pour savoir un objet est séléctioné<br>
    * </p>
    * @return boolean => Vrai / Faux
    */
    boolean getSelect()
    {
        return select;
    }
    
    /**
    *<b>Mutateur de la classe Forme</b><br> 
    * <p>
    * Est utilisé pour assigner une couleur à une forme<br>
    * </p>
    * @param c
    *       couleur 
    */
    void setCouleur(Color c)
    {
        couleur = c;
    }
    
    
    /**
    *<b>Observateur de la classe Forme</b><br> 
    * <p>
    * Est utilisé pour savoir quel est la couleur de l'objet courant<br>
    * </p>
    * @return couleur de la forme
    */
    Color getCouleur()
    {
        return couleur;
    }
}
